package persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import negocio.ItemComanda;
import negocio.Mozo;

public class DAOMozo {
	private static DAOMozo instancia=null;
	private DAOMozo(){
		
	}
	public static DAOMozo getInstancia() {
		if(instancia == null)
			return instancia = new DAOMozo();
		return instancia;
	}
	public Mozo buscarMozo(int nroMozo) {
			Connection connection = AdministradorDeConexion.getInstancia().connect();
			ItemComanda ItemComanda = null;

			try{
				String query =  "SELECT * FROM Empleado WHERE NroEmpleado = ?";
				PreparedStatement preparedStatement = null;
				preparedStatement = connection.prepareStatement(query);
				Mozo mozo = null;
				preparedStatement.setInt(1, nroMozo);
				ResultSet result = preparedStatement.executeQuery();			
				while (result.next()){
					
					// Constructor ItemComanda:
					// 
					
					mozo = new Mozo(nroMozo, result.getString("Nombre"), result.getInt("telefono"),
							result.getString("Direccion"));
					
					
				}
				AdministradorDeConexion.getInstancia().closeConnection(connection);
				return mozo;
			}
			catch (SQLException e) {

				AdministradorDeConexion.getInstancia().closeConnection(connection);
				System.out.println("Error: DAOMozo.buscarItemComanda(): Error al buscar el Mozo "  + nroMozo +  " en la Base de Datos. " + e.getLocalizedMessage());

			}
			catch (Exception e) {

				AdministradorDeConexion.getInstancia().closeConnection(connection);
				System.out.println("Error: DAOMozo.buscarItemComanda(): Error al buscar el Mozo "  + nroMozo + " en la Base de Datos. " + e.getLocalizedMessage());

			}
			return null;
		
	}
	public Mozo obtenerMozoDeMesa(int nroMesa) {
		Connection connection = AdministradorDeConexion.getInstancia().connect();
		ItemComanda ItemComanda = null;

		try{
			String query =  "SELECT * FROM Empleado_Mesa WHERE NroMesa = ?";
			PreparedStatement preparedStatement = null;
			preparedStatement = connection.prepareStatement(query);
			Mozo mozo = null;
			preparedStatement.setInt(1, nroMesa);
			ResultSet result = preparedStatement.executeQuery();			
			while (result.next()){
				
				String query1 =  "SELECT * FROM Empleado WHERE NroMozo = ?";
				PreparedStatement preparedStatement1 = null;
				preparedStatement1 = connection.prepareStatement(query);
				
				preparedStatement1.setInt(1, result.getInt("NroMozo"));
				ResultSet result1 = preparedStatement1.executeQuery();	
				AdministradorDeConexion.getInstancia().closeConnection(connection);
				mozo = new Mozo(result1.getInt("NroMozo"), result1.getString("Nombre"), result1.getInt("telefono"),
						result1.getString("Direccion"));
			}
			return mozo;
		}
		catch (SQLException e) {

			AdministradorDeConexion.getInstancia().closeConnection(connection);
			System.out.println("Error: DAOItemComanda.buscarItemComanda(): Error al buscar el Mozo para mesa "  + nroMesa +  " en la Base de Datos. " + e.getLocalizedMessage());

		}
		return null;
	}
}
